import { get, postWithQueryParams } from "@/api/request";

/**
 * 项目阶段控制器 / 项目阶段控制器查询项目阶段详情
 * @param {object} params
 * @param {string} params.projectPhase 项目阶段
 * @param {number} params.projectPlanningId 项目规划id
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<ProjectPhase页面展示实体>}
 * @author 肖玮
 */
export function projectPhaseDetail(params, config) {
  return get("/projectPhase/detail", params, config);
}

/**
 * 项目阶段控制器 / 项目阶段控制器查询最新的项目阶段信息
 * @param {object} params
 * @param {number} params.projectPlanningId projectPlanningId
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<ProjectPhase页面展示实体>}
 * @author 肖玮
 */
export function projectPhaseLatest(params, config) {
  return get("/projectPhase/latest", params, config);
}

/**
 * 项目阶段控制器 / 项目阶段控制器查询项目阶段列表
 * @param {object} params
 * @param {object} data
 * @param {number} [params.projectPlanningId] projectPlanningId
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<array<ProjectPhase页面展示实体>>}
 * @author 肖玮
 */
export function projectPhaseList(params, data, config) {
  return postWithQueryParams("/projectPhase/list", params, data, config);
}

/**
 * @typedef {object} BusinessAttachDetailVO
 * @property {string} attKey 附件key
 * @property {number} attOrder 附件排序
 * @property {number} attSize 附件大小(单位:MB)
 * @property {string} attSizeString 附件大小
 * @property {string} attSuffix 附件后缀
 * @property {string} attUrl 附件url
 * @property {number} attachId 文件id
 * @property {number} attachmentType 文件类型
 * @property {number} businessId 业务ID
 * @property {string} businessType 业务类型
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建用户
 * @property {boolean} delFlag 删除标识(false:否, true:是)
 * @property {number} directoryId 目录id
 * @property {string} filename 文件名称
 * @property {number} id 附件ID
 * @property {string} originalName 原始文件名
 * @property {string} remark 备注
 * @property {string} updateTime 修改时间
 * @property {string} updateUser 修改用户
 */

/**
 * @typedef {object} ProjectPhase页面展示实体 项目阶段页面展示实体
 * @property {array<BusinessAttachDetailVO>} attachmentList 附件
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建用户
 * @property {boolean} delFlag 删除标识 (0-未删除, 1-已删除)
 * @property {string} endDate 结束时间
 * @property {number} id
 * @property {boolean} isEdit 是否可编辑
 * @property {string} projectPhase 项目阶段
 * @property {string} projectPhaseName 项目阶段名称
 * @property {number} projectPlanningId 项目规划id
 * @property {string} remarks 备注
 * @property {string} responsiblePerson 负责人
 * @property {string} responsiblePersonName 负责人名称
 * @property {string} startDate 开始时间
 * @property {string} status 状态
 * @property {string} updateTime 更新时间
 * @property {string} updateUser 更新用户
 * @description 项目阶段页面展示实体
 */
